【Security Hub修復手順】[AppSync.2] AWS AppSync は、リクエストレベルとフィールドレベルのロギングを有効にする必要があります
こんにちは!AWS事業本部の吉田です。
皆さん、お使いのAWS環境のセキュリティチェックはしていますか?
当エントリでは、AWS Security HubによるAWS環境のセキュリティ状況スコアリングに該当する項目についての修復手順をご紹介します。
本記事の対象コントロール
[AppSync.2] AWS AppSync は、リクエストレベルとフィールドレベルのロギングを有効にする必要があります
[AppSync.2] AWS AppSync should have field-level logging enabled
前提条件
本記事はAWS Security Hubで「AWS基礎セキュリティのベストプラクティススタンダード」を利用されている方向けの内容となります。
AWS Security Hubの詳細についてはこちらのブログをご覧ください。
対象コントロールの説明
AWS AppSync ではリクエストレベルとフィールドレベルの2種類のログを記録できます。
本コントロールは、リクエストレベルとフィールドレベルのログについて、両方とも有効化されていることをチェックします。
リクエストレベルのログでは、AppSync APIへのリクエスト及びレスポンスの HTTP ヘッダーやリクエスト内で実行されたGraphQLクエリ等が記録されます。
フィールドレベルのログでは、スキーマ内で定義された各フィールドに対するリクエストマッピングやレスポンスマッピング、トレース情報等が記録されます。
こちらの機能ではCloudWatch Logsが必須になるため、追加費用を考慮した上で有効化して下さい。
また、本番環境では障害時調査や監査等の目的で取得するよう検討すべきですが、検証環境では必須ではありません。
そのため、環境によってはコントロールの無効化も検討してください。
修復手順
-
対象となるAppSyncを選択し、「編集」をクリックします。
-
左サイドバーの「設定」をクリックします。
-
API設定の「編集」をクリックします。
-
ログ記録の「ログ記録を有効化」をクリックします。
-
ログ記録の各設定が表示されます。
「詳細なコンテンツを含める」にチェックを入れることで、リクエストレベルのログが取得出来るようになりますので、チェックします。
「フィールドリゾルバーのログレベル」は、
- なし
- エラー
- すべて
の3つがあります。
障害調査などの際にスムーズに調査が出来るように、まず「すべて」で設定することをおすすめします。
「既存のロールを作成または使用する」は、AppSyncがログをCloudWatchにログ送信する際に利用するIAMロールの設定です。
「新しいロール」を選択した場合、以下のポリシーがアタッチされたIAMロールが自動作成されます。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Resource": [
"arn:aws:logs:ap-northeast-1:[アカウントID]:*"
]
}
]
}
任意の名前にしたい、権限を絞りたいという場合は、
事前にIAMロールを作成し、「既存の役割」で作成したIAMロールを設定してください。
-
設定が終わりましたら、右下の「保存」をクリックします。
-
ログ設定が設定されていることを確認します。
「CloudWatch log group」には、作成されたロググループのリンクがあります。
ロググループの命名規則は、「/aws/appsync/apis/[API ID]」です。
事前にIAMロールを作成する際は、この命名規則を元にポリシーのリソースを絞ってください。
最後に
今回は、AWS Security HubによるAWS環境のセキュリティ状況スコアリングに該当する項目についての修正手順をご紹介しました。
コントロールを修正して、お使いのAWS環境のセキュリティをパワーアップさせましょう!
最後までお読みいただきありがとうございました!どなたかのお役に立てれば幸いです。